package juego;

import vista.VistaExplorador;
import ar.uba.fi.algo3.titiritero.Dibujable;

public class Explorador extends Vehiculo {
	
	//Atributos de clase
	private static double miArco = ((2*(Math.PI))/20);
	private static int miImpacto = 15;
	private static int miPuntajePorDestruccion = 50;
	private static int miRadioGiro = /*30;*/20;
	private static int miResistenciaMaxima = 6;
	private static int miTamanio = 5;
	private static int miVelocidad = 10;
	
	//Atributos de instancia
    private Coordenada centro;
    private double angulo;
    
    //metodos
    
    //Constructor recibe coordenada
    public Explorador(Coordenada ubicacion){
    	super(ubicacion, miResistenciaMaxima);
    	int x = ubicacion.obtenerCoordenadaX();
    	int y = ubicacion.obtenerCoordenadaY();
    	int centroEnY = (y - miRadioGiro);
    	this.centro = new Coordenada(x,centroEnY);
    };
    
    //Constructor recibe 2 enteros
    public Explorador(int x, int y){
    	super(new Coordenada(x,y), miResistenciaMaxima);
    	int centroEnY = (y - miRadioGiro);
    	this.centro = new Coordenada(x,centroEnY);
    };
    
        
  //Devuelve el impacto provocado
    @Override
	public Impacto impactoProvocado(){
		return new ImpactoLineal(miImpacto);
	};  
    
    //Devuelve el puntaje por haber sido destruido
    public int puntajePorDestruccion(){
    	return miPuntajePorDestruccion;
    };

    
    //Devuelve el tamanio del explorador
    public int verTamanio(){
	    return miTamanio;
    };
    
  //Devuelve la velocidad del explorador
    protected int velocidad(){
	    return miVelocidad;
    };
    
    //se encarga de realizar el movimiento
    protected void movimientoPropio(){
    	this.angulo = this.angulo + miArco;
    	int enX = (int)((miRadioGiro)*Math.sin(angulo)); 
        int enY = (int)((miRadioGiro)*Math.cos(angulo)); 
    	int coordenadaX = this.centro.obtenerCoordenadaX() + enX;
    	int coordenadaY = this.centro.obtenerCoordenadaY() + enY;
    	Coordenada otraCoordenada = new Coordenada(coordenadaX,coordenadaY);
    	this.ubicacion = otraCoordenada;
    };
    
    @Override
	public Dibujable getDibujable() {
		Dibujable dibujable = new VistaExplorador();
		dibujable.setPosicionable(this);
		return dibujable;
	};

}
